home *** CD-ROM | disk | FTP | other *** search
/ PC User 2003 December / Australian PC User - December 2003 (CD2).iso / software / apps / files / dwmx2k4.exe / Disk1 / data1.cab / Configuration_En / Inspectors / date.js < prev    next >
Encoding:
JavaScript  |  2003-09-05  |  3.7 KB  |  122 lines

  1. // Copyright 2000, 2001, 2002, 2003 Macromedia, Inc. All rights reserved.
  2. // ******************** GLOBALS ****************************
  3.  
  4. var helpDoc = MM.HELP_inspDate;
  5.  
  6. // ******************** API ****************************
  7.  
  8. function canInspectSelection() {
  9.   var dom = dw.getDocumentDOM();
  10.   var lockObj = dom.getSelectedNode();
  11.   if (lockObj.type && lockObj.type == "mmdate")
  12.      return true;
  13.     return false;
  14.  
  15.  
  16.  
  17. // ******************** API ****************************
  18.  
  19. //function: editDateFormat
  20. //description: called from Edit button, brings up original date command
  21. //dialog so that format can be edited
  22.  
  23. function editDateFormat(){
  24.   var dom = dw.getDocumentDOM();
  25.   var lockObj = dom.getSelectedNode();
  26.   var origFormat = lockObj.format;
  27.   var dateInfoArr = decipherDateID(origFormat);
  28.   
  29.   var dayFormat = dateInfoArr[0];
  30.   var dateFormat = dateInfoArr[1];
  31.   var timeFormat = dateInfoArr[2];
  32.   
  33.   //pop up date dialog and return the date string and date ID
  34.   var dateDialogArr= showDateDialog(dayFormat,dateFormat,timeFormat)
  35.    
  36.   //if user clicks Cancel from Date dialog, return
  37.   if (!dateDialogArr[0])
  38.      return;
  39.     
  40.   var newDateStr = dateDialogArr[0];
  41.   var newFormat  = dateDialogArr[1];
  42.    
  43.   //if nothing has changed, return
  44.   if (origFormat == newFormat)
  45.      return;
  46.   
  47.   var openComment = '<!-- #BeginDate format:' + newFormat + ' -->';
  48.   var closeComment = '<!-- #EndDate -->';
  49.   newDateStr = openComment + newDateStr + closeComment;
  50.   var docElement = dom.documentElement;
  51.   var allText = docElement.outerHTML;
  52.   var lockOffsets = dom.nodeToOffsets(lockObj);
  53.   allText = allText.substring(0,lockOffsets[0]) + newDateStr +
  54.             allText.substring(lockOffsets[1]);
  55.   docElement.outerHTML = allText;
  56.  
  57.   // reset selection
  58.   dom.setSelection(lockOffsets[0],lockOffsets[0]+newDateStr.length);
  59. }
  60.  
  61.  
  62.  
  63. //function: showDateDialog
  64. //description: displays the date dialog
  65. //returns an array of two items:
  66. //1.a date string using the chosen format
  67. //2.a date ID which shows the type of format, e.g.: "fcAm1"
  68. //means a full day, followed by a comma, followed by the American 1 format
  69.  
  70. function showDateDialog(dayFormat,dateFormat,timeFormat){
  71.    var cmdFile = dw.getConfigurationPath() + "/Commands/Date.htm";
  72.    var cmdDOM = dw.getDocumentDOM(cmdFile);
  73.    var cmdWin = cmdDOM.parentWindow;
  74.    
  75.    var theForm = cmdDOM.forms[0];
  76.    var dayMenu = theForm.DayFormats;
  77.    var dateMenu = theForm.DateFormats;
  78.    var timeMenu = theForm.TimeFormats;
  79.    
  80.    //popup the date window, but first -- remove the "Update Automatically" option
  81.    //and change title to be "Edit Date Format"
  82.    cmdDOM.getElementsByTagName("mmtag").item(0).innerHTML = "";
  83.    cmdDOM.getElementsByTagName("title").item(0).innerHTML = TITLE_EditDateFormat;
  84.    
  85.    //next, select the correct day format, date format, and time format.
  86.    cmdWin.initializeUI(); //populate the menus
  87.    selectMenuOption(dayMenu,"value",dayFormat); 
  88.    selectMenuOption(dateMenu,"value",dateFormat);
  89.    selectMenuOption(timeMenu,"value",timeFormat);
  90.    
  91.    dw.popupCommand("Date.htm");
  92.  
  93.    return new Array(   cmdWin.getDateStr(),
  94.                        cmdWin.getDateID()   );
  95. }
  96.  
  97.  
  98.  
  99. //function: selectMenuOption
  100. //description: given a select widget object, attribute, and value,
  101. //selects the option where attribute=value
  102. //for instance, given selObj,text,"my field", selects the option
  103. //with text equalling "my field"
  104.  
  105. function selectMenuOption(selObj,attr,val){
  106.    
  107.    var selInd = -1;
  108.    for (var i=0;i<selObj.options.length;i++){
  109.    
  110.       if ( selObj.options[i][attr] == [val]){
  111.        selInd = i;
  112.      break; 
  113.     }
  114.    }   
  115.    if (selInd!=-1)
  116.       selObj.selectedIndex = selInd;
  117.       
  118. }
  119.  
  120.  
  121.